Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Захист інформації

Інформація про роботу

Рік:
2009
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Алгоритмічні основи криптології
Група:
ІБ – 44

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” ІКТА кафедра «Захист інформації»  Звіт про виконання лабораторної роботи №1 з дисципліни "АЛГОРИТМІЧНІ ОСНОВИ КРИПТОЛОГІЇ" ОПЕРАЦІЇ З ДОВГИМИ ЧИСЛАМИ Варіант 23 Мета роботи - вивчити способи представлення та алгоритми для виконання операцій введення-виведення, порівняння, підсумовування, віднімання довгих чисел та навчитися розробляти програмне забезпечення для реалізації перерахованих алгоритмів на комп’ютері. ЗАВДАННЯ 1. Домашня підготовка до роботи 1) Вивчити основні способи представлення довгих чисел та алгоритми для реалізації операцій введення, виведення, порівняння, а також арифметичних операцій додавання-віднімання довгих чисел. 2) Скласти блок-схеми алгоритмів та підпрограми для реалізації операцій введення та виведення довгих чисел. Варіанти представлення довгих чисел та способи заповнення невикористаних розрядів беруться за вказівкою викладача з таблиці 1. 3) Скласти блок-схеми алгоритмів, підпрограми та програму для реалізації адитивних операцій та операцій порівняння для роботи з довгими числами. Дані для роботи беруться з таблиці 5 за вказівкою викладача. Таблиця 1. № з/п Варіант представлення числа Заповнення невикористаних розрядів Операції з довгими числами  23 3 -1 Додавання, не рівно   2. Робота в лабораторії 1) Ввести в комп'ютер програми згідно з отриманим завданням. 2) Відлагодити програми. При необхідності скоригувати блок-схеми алгоритмів та програми у відповідності з виявленими логічними та синтаксичними помилками. 3) Остаточні версії блок-схем, програм та отримані результати занести у звіт з лабораторної роботи. 4) Здати звіт з лабораторної роботи. Блок-схеми підпрограм та функцій. А) алгоритм введення довгого числа.  Б) алгоритм виведення довгого числа.  В) алгоритм порівняння довгих чисел  Г) алгоритм додавання довгих чисел  Текст програми #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> #define max 50 #define osn 1000 long int *vvid( char mas[ ]) { long int *a, res, a22; char ch; a = (long int*)malloc(max*sizeof(int)); int i = 0; int j = 0; for(i = 0; i < max; i++) a[i] = 0; for(j = 0; mas[j] != 0; j++) { if ( isdigit(mas[j]) ) { for (i = a[0]; i >= 1; i--) { a[i + 1] = a[i + 1] + (a[i] * 10) / osn; a[i] = a[i] * 10 % osn; } ch = mas[j]; a22 = atoi(&ch); a[1] = a[i+1] + a22; if (a[a[0] + 1] > 0) a[0]++; } } return a; } void vyvid(long int *b) { long int res; int N = 0; int NN = 1; int p; int b_osn = b[0]; int i = 0; for(i = b[0]; i>=1 ; i--) { N = b[i]; if (N == 0) NN = 0; for (p = 1; N > 0; p = p*10) N = N / 10; while (osn - p != 0) { if (b[0] == i) break; printf("%c",'0'); p = p*10; } if (NN == 1) { res = b[i]; printf("%d",res); } NN = 1; N = 0; } } long int *sum(long int a[], long int b[]) { int k; long int *c; c = (long int*)malloc(max*sizeof(int)); int i; for( i = 0; i < max; i++) c[i] = 0; if(a[0] > b[0]) k = a[0]; else k = b[0]; for(i = 1; i <= k; i++) { c[i + 1] = (c[i] + a[i] + b[i]) / osn; c[i] = (c[i] + a[i] + b[i]) % osn; } if (c[k + 1] == 1) c[0] = k + 1; else c[0] = k; return c; } int nerivne(long int a[], long int b[]) { int e,i=0; while (i++<max) if (a[i]==b[i]) {e=0; continue;} else {break; e=1;} return e; } int main() { long int *a = 0, *b = 0, *c = 0, g; char mas1[100], mas2[100]; puts("vvedit 1 chyslo:"); gets(mas1); a = vvid(mas1); puts("vvedit 2 chyslo:"); gets(mas2); b = vvid(mas2); vyvid(a); printf("\n"); vyvid(b); c = sum(a,b); printf("\na + b ="); vyvid(c); printf("\na nerivne b:"); g=nerivne(a,b); if(g) puts("true"); else puts("false"); system("PAUSE");...
Антиботан аватар за замовчуванням

31.01.2012 19:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини